/**
 * vuex是一个实现了共享状态数据管理的库，它的数据可以实现可预测化
 */
// 它是一个插件，需要注册
import Vue from 'vue'
import Vuex from 'vuex'

// 需要引入一个第三方库，来解决vuex页面刷新数据丢失的问题
// 实现原理是当数据发生变化，会自动存储到local或则sessionStorage中去，页面刷新后会自动从local、sessionStorage中取出数据赋值给state初始值
import persisted from 'vuex-persistedstate'
Vue.use(Vuex)

// 导入common模块
import common from './common'

// 进行实例化
const store = new Vuex.Store({
    // 有一个插件注册的属性
    plugins: [
        persisted({
            // 指定存储位置
            storage: window.sessionStorage
        })
    ],
    // 执行模块化
    modules: {
        common
        // common: {
        //     namespaced: true,
        //     state: {
        //         token: ''
        //     },
        //     getters: {
        //         token(_state) {
        //             return _state.token
        //         }
        //     },
        //     mutations: {
        //         setToken(_state, _token) {
        //             _state.token = _token
        //         }
        //     }
        // }
    }
})

export default store